package com.anycc.cloud.core.service;

import com.anycc.cloud.common.dto.easyui.Tree;
import com.anycc.cloud.common.dto.query.PagingRequest;
import com.anycc.cloud.common.dto.query.PagingResponse;
import com.anycc.cloud.core.entity.Area;

import java.util.List;

/**
 * 区划管理service
 */
public interface AreaService {
    /**
     * 创建区划
     *
     * @param area 区划对象
     * @return response
     */
    Area create(Area area);

    /**
     * 更新区划
     *
     * @param area 区划
     * @return Area
     */
    Area update(Area area);

    /**
     * 根据Id删除Area
     *
     * @param id id
     */
    void delete(String id);

    /**
     * 根据ID查询
     *
     * @param id 区划id
     * @return Area
     */
    Area findById(String id);

    /**
     * 根据Code查询
     *
     * @param code 区划code
     * @return Area
     */
    Area findByCode(String code);


    /**
     * 分页查询
     *
     * @param area          区划
     * @param pagingRequest pagingRequest
     * @return pagingResponse
     */
    PagingResponse<Area> findByPaging(Area area, PagingRequest pagingRequest);

    /**
     * build area tree
     *
     * @return List
     */
    List<Tree> tree();

    /**
     * build tree
     *
     * @param areaId area id
     * @return List
     */
    List<Tree> parentTree(String areaId);

}
